每次使用docker log -f <容器名>时, 会蹦出一堆日志, 等日志滚到最底部需要很长时间, 这让我很苦恼, 下面说下解决方法.

不删除日志的解决方案

其实log命令自带两个参数, 分别是sincetail, since是显示从什么时候开始的日志, tail命令则是告诉我们显示最后多少行的日志.

以下是三个例子:

# 显示最近一小时的日志
docker logs -f <容器名> --since 1h

# 显示最后20行日志
docker logs -f <容器名> --tail 20

# 显示最近一小时内最后20行日志
docker logs -f <容器名> --tail 20 --since 1h

如果没有特殊要求, 上面的命令就能解决显示日志问题, 下面说下其他方案

docker运行状态直接清空日志的命令

sh -c 'echo "" > $(docker inspect --format="{{.LogPath}}" <容器名>)'

这命令就是找出容器日志存储的位置, 然后使用空字符串覆盖

通过docker配置文件限制所有新启动容器的日志大小

/etc/docker目录下的daemon.json配置文件中添加log-opts配置, 没有该文件则创建,

{
    "log-opts": {
        "max-size": "10m",
        "max-file": "3"
    }
}

这种方法会给每个新启动的docker容器日志进行限制, 上面的配置是说最多保留3个日志, 每个日志大小不超过10M, 也就是每个新启动的容器日志大小会限制在20M~30M之间.

dockerRun启动容器时限制该容器日志大小


docker run --name app \
    --log-driver json-file \
    --log-opts max-size=10M \
    --log-opts max-file=3 \
    <镜像名>

dockerCompose启动时限制该容器日志大小

2023-04-26-09-14-10

参考资料

How to Clear Logs of Running Docker Containers

docker-compose json logging driver labels/env

THE END
推荐文章
  • 让win10每天定时自动关机

  • windows安装redis并设置服务

  • git的分支操作

  • VSCode中如何通过文件名快速找到这个文件

  • 黄帝内经-第九篇-六节脏象论篇(2)

  • Error: MySQL shutdown unexpectedly

  • 怎么让 html-webpack-plugin 不执行模板的 ejs 语句, 而是保持原样?

  • 黄帝内经-第十二篇-异法方宜论篇

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字